Over the past several years, computers have increasingly promoted collaborative activities between groups of users. The collaboration between users can be a simple as an instant messaging discussion group, or can be a complex engineering design being developed by a group of engineers dispersed at locations around the world. Computer interfaces have matured as well, changing from the primitive text-based user interfaces of the early days of computers to multimedia-rich browser environments, as well as complex virtual environments. For example, virtual environments are used today to provide realistic scenarios to train personnel involved in occupations requiring quick decision-making, such as police work and aircraft and ship piloting. Coupled with the maturation of the user interface has been the trend towards sophisticated multi-user systems that support collaboration amongst a large group of users.
Concurrent with the rise of the Internet, software agents have become a necessary tool to manage the volume and flow of information available to an Internet user. Software agents execute various tasks as required by a particular user, and are guided by their particular programming. For example, a software agent can operate autonomously and, within that autonomous operation, react to certain events, capture and filter information and communicate the filtered information back to a user. A software agent can be designed to control their own activities, and one of skill can easily design software agents that communicate and interact with other software agents.
The types of software agents are only limited by the imagination of a software designer. A software agent can be designed to be a pedagogical agent that has speech capability (Lester, et al 1997) and can adapt their behavior to their environment (Johnson, 1998). A well-designed software agent can respond with cognitive responses, as well as affect, and their outward behavior is adapted to their particular role (Lester and Stone, 1997), (Andre et al, 1998).
An avatar is defined as the “the representation of a user's identity within a multi-user computer environment; a proxy for the purposes of simplifying and facilitating the process of inter-human communication in a virtual world.” (Gerhard and Moore 1998). Within a virtual environment, avatars have a plurality of attractive traits, such as identity, presence and social interaction. Within a virtual world, an avatar is used to establish a user's presence, and they may take on an assumed persona of the user. For example, in a gaming virtual world, a mild mannered accountant may use an avatar with a persona of a mercenary soldier. It is well known that avatars can be aware of each other within a given virtual world. Moreover, an avatar can be under the direct control of its underlying user, or may have a great deal of freedom with respect to its internal state and actions. A group of avatars can initiate and continue social and business encounters in a virtual world and foster the impression that they are acting as virtual agents and have authority derived from the underlying user.